Skip to content

fix: use env var indirection for inputs.include-hidden-files (CMD_EXEC)#141

Open
nbuckwalt wants to merge 1 commit intoactions:mainfrom
nbuckwalt:fix/cmd-exec-include-hidden-files
Open

fix: use env var indirection for inputs.include-hidden-files (CMD_EXEC)#141
nbuckwalt wants to merge 1 commit intoactions:mainfrom
nbuckwalt:fix/cmd-exec-include-hidden-files

Conversation

@nbuckwalt
Copy link
Copy Markdown

Security Fix: CMD_EXEC via inputs.include-hidden-files

Summary

`inputs.include-hidden-files` is directly interpolated into the `run:` shell command across all three "Archive artifact" steps (Linux/macOS/Windows variants):
```
${{ inputs.include-hidden-files != 'true' && '--exclude=.[^/]*' || '' }}
```
A caller passing a crafted value could inject arbitrary shell arguments or commands into the `tar` invocation.

Fix

Map the input to an `env:` variable (`INCLUDE_HIDDEN_FILES`) and evaluate the condition in shell using `[ "$INCLUDE_HIDDEN_FILES" != 'true' ]`. Applied to all three platform-specific steps. Behavior is identical.

References

🤖 Generated with Claude Code

Copilot AI review requested due to automatic review settings March 26, 2026 20:36
@nbuckwalt nbuckwalt requested a review from a team as a code owner March 26, 2026 20:36
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the composite GitHub Action to mitigate a GitHub Actions expression injection vector (CMD_EXEC) by removing direct interpolation of inputs.include-hidden-files into shell commands and instead evaluating it via an environment variable in the shell.

Changes:

  • Replaced ${{ ... }} expression interpolation in run: with a shell conditional based on INCLUDE_HIDDEN_FILES.
  • Added INCLUDE_HIDDEN_FILES to env: for each platform-specific “Archive artifact” step (Linux/macOS/Windows).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants